<?php
/*
 * Intreface DAO
 *
 * @author: http://phpdao.com
 * @date: 2009-09-12 17:20
 */
interface QuestionmasterDAO{

	/**
	 * Get Domain object by primry key
	 *
	 * @param String $id primary key
	 * @Return Questionmaster 
	 */
	public function load($id);

	/**
	 * Get all records from table
	 */
	public function queryAll();
	
	/**
	 * Get all records from table ordered by field
	 * @Param $orderColumn column name
	 */
	public function queryAllOrderBy($orderColumn);
	
	/**
 	 * Delete record from table
 	 * @param questionmaster primary key
 	 */
	public function delete($QuestionMasterId);
	
	/**
 	 * Insert record to table
 	 *
 	 * @param Questionmaster questionmaster
 	 */
	public function insert($questionmaster);
	
	/**
 	 * Update record in table
 	 *
 	 * @param Questionmaster questionmaster
 	 */
	public function update($questionmaster);	

	/**
	 * Delete all rows
	 */
	public function clean();

	public function queryByNestingLevel($value);

	public function queryByCategoryMasterId($value);

	public function queryByQuestionType($value);

	public function queryByQuestion($value);

	public function queryByUrl($value);

	public function queryByYesQuestionId($value);

	public function queryByNoQuestionId($value);

	public function queryByDiagnosis($value);

	public function queryByFirstLink($value);

	public function queryByIsTreeFinalised($value);

	public function queryByMarkForDelete($value);

	public function queryByParentQuestionId($value);

	public function queryByNestingLevelAndFirstLink($value,$value1);

	public function deleteByNestingLevel($value);

	public function deleteByCategoryMasterId($value);

	public function deleteByQuestionType($value);

	public function deleteByQuestion($value);

	public function deleteByUrl($value);

	public function deleteByYesQuestionId($value);

	public function deleteByNoQuestionId($value);

	public function deleteByDiagnosis($value);

	public function deleteByFirstLink($value);

	public function deleteByIsTreeFinalised($value);

	public function deleteByMarkForDelete($value);

	public function deleteByParentQuestionId($value);


}
?>